【小ネタ】CloudWatch エージェントの過去のバージョンをインストールしてみた

【小ネタ】CloudWatch エージェントの過去のバージョンをインストールしてみた

CloudWatch エージェントの過去のバージョンを Systems Manager の RunCommand でインストールする際には、バージョン指定の工夫が必要です。
Clock Icon2022.12.20

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

テクニカルサポートの m.hayakawa です。

とある事情から、CloudWatch エージェントのアップデート時の挙動を調べる機会がありました。

アップデートを行うためには、過去のバージョンをインストールしなければいけません。

その際の指定方法に工夫が必要な部分があったため、備忘録として記事にします。

最新バージョンの CloudWatch エージェントを RunCommand でインストール

始めに、前提条件を満たす環境で、EC2(Windows)を起動します。

その後、下記のドキュメントに従って AWS Systems Manager Run Command を用いて、CloudWatch エージェントの最新版をインストールします。

エージェント設定を使用した EC2 インスタンスへの CloudWatch エージェントのインストール - Amazon CloudWatch

Run Command のコンソールにて、以下の値を設定し実行します。

  • ドキュメント名: AWS-ConfigureAWSPackage
  • Action: Install
  • Installation Type: Uninstall and reinstall
  • Name: AmazonCloudWatchAgent
  • Version: latest

実行ログを確認したところ、CloudWatch エージェントのインストールができたことが確認できました。

Initiating arn:aws:ssm:::package/AmazonCloudWatchAgent 1.247355.0b252062 install
Plugin aws:runPowerShellScript ResultStatus Success
install output: Running install.ps1
CWAgentOtelCollector has been started
AmazonCloudWatchAgent has been started
Successfully installed arn:aws:ssm:::package/AmazonCloudWatchAgent 1.247355.0b252062

CloudWatch エージェントのバージョン番号を Run Command で確認

CloudWatch エージェントのリリース情報は、CloudWatch エージェントの GitHub で調べることが可能です。

本記事の記載時点では、v1.247355.0が最新バージョンとなっておりました。

改めて、Run Command で先ほどインストールした CloudWatch エージェントのバージョンを確認してみます。

  • ドキュメント名: AmazonCloudWatch-ManageAgent
  • Action: status
  • Mode: ec2
  • Optional Configuration Source: ssm
  • Optional Configuration Location : 空欄
  • Optional Open Telemetry Collector Configuration Source: ssm
  • Optional Open Telemetry Collector Configuration Location: 空欄
  • Optional Restart: yes

{
  "status": "running",
  "starttime": "2022-12-19T09:23:05",
  "configstatus": "configured",
  "cwoc_status": "running",
  "cwoc_starttime": "2022-12-19T09:23:04",
  "cwoc_configstatus": "configured",
  "version": "1.247355.0b252062"
}

version の部分を確認すると1.247355.0b252062となっており、バージョン番号の末尾に文字列があることが確認できます。

過去バージョンの CloudWatch エージェントを RunCommand でインストール

さて、ここからが本題です。

CloudWatch エージェントの GitHub で過去バージョンを調べてみます。

v1.247354.0 というバージョンがあることを確認しました。

Run Command のコンソールにて、Version にバージョン番号を指定し、実行します。

  • ドキュメント名: AWS-ConfigureAWSPackage
  • Action: Install
  • Installation Type: Uninstall and reinstall
  • Name: AmazonCloudWatchAgent
  • Version: 1.247354.0
failed to download manifest - failed to retrieve package document description: InvalidDocument: Document with name AmazonCloudWatchAgent with version 1.247354.0 does not exist.

失敗してしまいました。どうやら、当該のバージョンが存在しないとのこと。

ここで立ち返って、Run Command で CloudWatch エージェントのバージョンを確認した結果を見てみます。

"version": "1.247355.0b252062"

バージョン番号の末尾に文字列があることが確認できます。

これがヒントになるかもしれないと思い、探しに探したところ、以下のドキュメントを見つけました。

リリース: Elastic Beanstalk Windows Server プラットフォームの更新 (2022 年 8 月 25 日) - AWS Elastic Beanstalk

CloudWatch エージェントをバージョン 1.247354.0b251981 に更新しました。

こちらを元に、Run Command のコンソールにて、Version にバージョン番号を指定し、実行します。

  • ドキュメント名: AWS-ConfigureAWSPackage
  • Action: Install
  • Installation Type: Uninstall and reinstall
  • Name: AmazonCloudWatchAgent
  • Version: 1.247354.0b251981
Initiating arn:aws:ssm:::package/AmazonCloudWatchAgent 1.247355.0b252062 uninstall
Plugin aws:runPowerShellScript ResultStatus Success
uninstall output: Running uninstall.ps1
CWAgentOtelCollector has been stopped
AmazonCloudWatchAgent has been stopped

2022-12-20T01:37:44.0351002+00:00: [INFO] Starting update check...
2022-12-20T01:37:44.3910881+00:00: [DEBUG] Installed Amazon CloudWatch agents:
2022-12-20T01:37:44.3986792+00:00: [DEBUG] \\EC2AMAZ-487H0IV\root\cimv2:Win32_Product.IdentifyingNumber="{94A29035-669A-43FC-83CB-320364B77A38}",Name="Amazon CloudWatch Agent",Version="1.3.50747"
2022-12-20T01:37:44.4128932+00:00: [INFO] Uninstalling existing agent...
2022-12-20T01:37:44.4236183+00:00: [INFO] \\EC2AMAZ-487H0IV\root\cimv2:Win32_Product.IdentifyingNumber="{94A29035-669A-43FC-83CB-320364B77A38}",Name="Amazon CloudWatch Agent",Version="1.3.50747"
2022-12-20T01:37:44.7689438+00:00: [INFO] Uninstall complete.

Initiating arn:aws:ssm:::package/AmazonCloudWatchAgent 1.247354.0b251981 install
Plugin aws:runPowerShellScript ResultStatus Success
install output: Running install.ps1
CWAgentOtelCollector has been started
AmazonCloudWatchAgent has been started

Successfully installed arn:aws:ssm:::package/AmazonCloudWatchAgent 1.247354.0b251981
Successfully uninstalled arn:aws:ssm:::package/AmazonCloudWatchAgent 1.247355.0b252062

成功しました!

最後に

だいぶ遠回りになりましたが、CloudWatch エージェントを Run Command でインストールする際に指定する過去のバージョン番号は、AWS Elastic Beanstalk リリースノートから参照する方法を取るのが、現状ではよさそうでした。

この記事が、どこかで困っている方の役に立てれば幸いです。

おまけ

本記事作成後に気付いたのですが、CloudWatch エージェントの Docker Hub でも調べることができそうでした。

amazon/cloudwatch-agent Tags | Docker Hub

Share this article

facebook logohatena logotwitter logo

© Classmethod, Inc. All rights reserved.